Rough documentation/source/rom addresses/whatever.
---

water tiles:

USA:
0x003B6C top-left
0x003C5C top-right
0x003D4C bottom-left
0x003E3C bottom-right

EUR:
0x003B21 top-left
0x003C11 top-right
0x003D01 bottom-left
0x003DF1 bottom-right

5 bytes:
1 upwards
2 to right
3 downwards
4 to left
5 still

original tiles:
58 58 58 58 58
edited tiles:
CC CD DC DD 58
---

Magic shot heart frame palette (tile ID 4D):
USA:	0x003f3f
EUR:	0x003ef4
Original: 00
Edited:   01
---

1x3 palette edits:

Normal tileset:

USA:
0x001A9C
EUR:
0x001A57

Lava tileset:
USA:
0x001ABC
EUR:
0x001A77

Original: 	0F 30 10 03
Edit: 		0F 30 00 0F
---

And extra, I originally tired to edit the originals water palette animation to make 
the water stream look better, but in the end it looked like ass so reverted it back.

And since I went as far as to disassemble the damn thing Im just gonna dump my 
"disassembly" of it to there along with vague documentation.
Lava part is mostly undocumented as I had to need to edit them in the first place.

This is for USA version! EUR has different ROM addresses but should be the same otherwise.

Special thanks for cyneprepou4uk for his nes game disassembler, in case you are reading this,
pls update/finish up your tutorial so that I can assemble this shit back together,
and maybe dump this garbage to github, just maybe.
---

How to read example;
c        d  e     f         g
0x008020 02:8010: 20 43 80  JSR sub_8043

c. Offset in the NES file
d. PRG ROM bank
e. CPU address
f. Hex byte values at the address
g. Assembly code
;. comment
(this is shamelessly stolen from romhacking.net forums somewhere)
---

"disassembly":

;pointer for palette animations
0x0039AC 00:B99C: BD C2 B9  LDA $B9C2,X	; notice how pointer is "reverse" in the hex part

;water animation palettes
0x0039D2 00:B9C2: 0F        .byte $0F   ; frame 0 (HEX)
0x0039D3 00:B9C3: 11        .byte $11   ; 
0x0039D4 00:B9C4: 21        .byte $21   ; 
0x0039D5 00:B9C5: 11        .byte $11   ;

0x0039D6 00:B9C6: 0F        .byte $0F   ; 1
0x0039D7 00:B9C7: 21        .byte $21   ; 
0x0039D8 00:B9C8: 21        .byte $21   ; 
0x0039D9 00:B9C9: 11        .byte $11   ; 

0x0039DA 00:B9CA: 0F        .byte $0F   ; 2
0x0039DB 00:B9CB: 21        .byte $21   ; 
0x0039DC 00:B9CC: 11        .byte $11   ; 
0x0039DD 00:B9CD: 11        .byte $11   ; 

0x0039DE 00:B9CE: 0F        .byte $0F   ; 3
0x0039DF 00:B9CF: 31        .byte $31   ; 
0x0039E0 00:B9D0: 11        .byte $11   ; 
0x0039E1 00:B9D1: 11        .byte $11   ; 

0x0039E2 00:B9D2: 0F        .byte $0F   ; 4
0x0039E3 00:B9D3: 31        .byte $31   ; 
0x0039E4 00:B9D4: 21        .byte $21   ; 
0x0039E5 00:B9D5: 11        .byte $11   ; 
;water palettes end


;lava palette animation palettes
0x0039E6 00:B9D6: 0F        .byte $0F   ; frame 5 (HEX)
0x0039E7 00:B9D7: 15        .byte $15   ; 
0x0039E8 00:B9D8: 15        .byte $15   ; 
0x0039E9 00:B9D9: 05        .byte $05   ; 

0x0039EA 00:B9DA: 0F        .byte $0F   ; 6
0x0039EB 00:B9DB: 15        .byte $15   ; 
0x0039EC 00:B9DC: 05        .byte $05   ; 
0x0039ED 00:B9DD: 05        .byte $05   ; 

0x0039EE 00:B9DE: 0F        .byte $0F   ; 7
0x0039EF 00:B9DF: 15        .byte $15   ; 
0x0039F0 00:B9E0: 07        .byte $07   ; 
0x0039F1 00:B9E1: 05        .byte $05   ; 

0x0039F2 00:B9E2: 0F        .byte $0F   ; 8
0x0039F3 00:B9E3: 05        .byte $05   ; 
0x0039F4 00:B9E4: 15        .byte $15   ; 
0x0039F5 00:B9E5: 05        .byte $05   ; 

0x0039F6 00:B9E6: 0F        .byte $0F   ; 9
0x0039F7 00:B9E7: 05        .byte $05   ; 
0x0039F8 00:B9E8: 07        .byte $07   ; 
0x0039F9 00:B9E9: 05        .byte $05   ; 

0x0039FA 00:B9EA: 0F        .byte $0F   ; A
0x0039FB 00:B9EB: 05        .byte $05   ; 
0x0039FC 00:B9EC: 05        .byte $05   ; 
0x0039FD 00:B9ED: 05        .byte $05   ; 
;lava palettes end

0x0039FE 00:B9EE: F8        .byte $F8   ; something about water palette speed?
0x0039FF 00:B9EF: 06        .byte $06   ; ??? not read in this case
0x003A00 00:B9F0: B9        .byte $B9   ; read but unknown (lava?)
0x003A01 00:B9F1: BA        .byte $BA   ; ??? not read in this case
0x003A02 00:B9F2: FF        .byte $FF   ; read but unknown (lava?)
0x003A03 00:B9F3: 0F        .byte $0F   ; ??? not read in this case
0x003A04 00:B9F4: B9        .byte $B9   ; read but unknown (lava?)
0x003A05 00:B9F5: BA        .byte $BA   ; ??? not read in this case

0x003A06 00:B9F6: 07        .byte $07   ; how many palette animation frames, water
0x003A07 00:B9F7: 09        .byte $09   ; how many palette animation frames, lava (speculation, not checked)

;water
;how long to stay on palette frame
0x003A08 00:B9F8: 18        .byte $18   ; palette animation frame 1 "length"
0x003A09 00:B9F9: 10        .byte $10   ; palette animation frame 2 "length"
0x003A0A 00:B9FA: 10        .byte $10   ; palette animation frame 3 "length"
0x003A0B 00:B9FB: 10        .byte $10   ; palette animation frame 4 "length"
0x003A0C 00:B9FC: 08        .byte $08   ; palette animation frame 5 "length"
0x003A0D 00:B9FD: 10        .byte $10   ; palette animation frame 6 "length"
0x003A0E 00:B9FE: 20        .byte $20   ; palette animation frame 7 "length"

;water
;what palette to use on that frame
0x003A0F 00:B9FF: 00        .byte $00   ; palette animation frame 1
0x003A10 00:BA00: 01        .byte $01   ; palette animation frame 2
0x003A11 00:BA01: 02        .byte $02   ; palette animation frame 3
0x003A12 00:BA02: 03        .byte $03   ; palette animation frame 4
0x003A13 00:BA03: 04        .byte $04   ; palette animation frame 5
0x003A14 00:BA04: 01        .byte $01   ; palette animation frame 6
0x003A15 00:BA05: 00        .byte $00   ; palette animation frame 7

;lava
;how long to stay on palette frame (speculation, not checked)
0x003A16 00:BA06: 16        .byte $16   ; palette animation frame 1 "length"
0x003A17 00:BA07: 0B        .byte $0B   ; and so on...
0x003A18 00:BA08: 0B        .byte $0B   ; 
0x003A19 00:BA09: 16        .byte $16   ; 
0x003A1A 00:BA0A: 0B        .byte $0B   ; 
0x003A1B 00:BA0B: 0B        .byte $0B   ; 
0x003A1C 00:BA0C: 16        .byte $16   ; 
0x003A1D 00:BA0D: 16        .byte $16   ; 
0x003A1E 00:BA0E: 16        .byte $16   ; 

;lava
;what palette to use on that frame (speculation, not checked)
0x003A1F 00:BA0F: 05        .byte $05   ; palette animation frame 1
0x003A20 00:BA10: 06        .byte $06   ; and so on...
0x003A21 00:BA11: 07        .byte $07   ; 
0x003A22 00:BA12: 06        .byte $06   ; 
0x003A23 00:BA13: 05        .byte $05   ; 
0x003A24 00:BA14: 08        .byte $08   ; 
0x003A25 00:BA15: 09        .byte $09   ; 
0x003A26 00:BA16: 0A        .byte $0A   ; 
0x003A27 00:BA17: 08        .byte $08   ; 
---